

package jumavidesktop.Persistencia.Dao.Implementaciones;

import javax.persistence.EntityManager;
import jumavidesktop.Otros.Pojos.MyRespuesta;
import jumavidesktop.Persistencia.Dao.AbstractDAO;
import jumavidesktop.Persistencia.Dao.Interfaces.IDaoConfigMotion;
import jumavidesktop.Persistencia.entidades.Configdetectionmotion;
import org.apache.commons.lang.StringUtils;

/**
 *
 * @author vimso
 */
public class DaoConfigMotion extends AbstractDAO<Configdetectionmotion> implements IDaoConfigMotion {

    public DaoConfigMotion() {
        super();
    }

    

    public DaoConfigMotion( EntityManager entityManager) {
        super( entityManager);
    }

    @Override
    public MyRespuesta verificarDatosMinimos(Configdetectionmotion entidad) {
        
        MyRespuesta respuesta= new MyRespuesta();
        //Debe de tener todos los campos completos (menos el id auto generado XD)
        if(entidad==null)
        {
            return new MyRespuesta("Debe especificar la entidad");
        }
        
        if(entidad.getTipoRecurso()==null)
        {
            respuesta.addError("Debe indicar el tipo de recurso");
        }
        
        if(StringUtils.isBlank(entidad.getDatosRecursos()))
        {
            respuesta.addError("Debe indicar la fuente del recurso");
        }
        
        if(entidad.getCamara()==null)
        {
            respuesta.addError("Debe indicar la camara a la que pertenece la configuración");
        }
        
        if(entidad.getUmbralSensibilidad()==0)
        {
            respuesta.addError("Debe indicar el umbral de sensibilidad de movimiento superior a 0");
        }
        
        if(entidad.getSizeCuadrado()==0)
        {
            respuesta.addError("Debe indicar el tamaño de escaneo del sensor de movimiento superior a 0");
        }
        
        //Debe pertenecer a una cámara.
        
        if(entidad.getCamara()==null)
        {
            respuesta.addError("Debe establecer a la cámara que corresponde");
        }
        
        
        return respuesta;
    }

    @Override
    public MyRespuesta verificarEntidadAlGuardar(Configdetectionmotion entidad) {
        return this.verificarDatosMinimos(entidad);
    }

    @Override
    public MyRespuesta verificarEntidadAlModificar(Configdetectionmotion entidad) {
        return this.verificarDatosMinimos(entidad);
    }

    @Override
    public MyRespuesta verificarEntidadAlEliminar(Configdetectionmotion entidad) {
        return new MyRespuesta();
    }

    @Override
    protected Class getClase() {
        return DaoConfigMotion.class;
    }

    @Override
    public boolean tieneRegistros() {
        return this.existenRegistros();
    }

    @Override
    public Configdetectionmotion encuentraEntidad(Object id) {
        return this.encuentraRegistro(Configdetectionmotion.class, id);
    }
}
